home *** CD-ROM | disk | FTP | other *** search
/ Computer Shopper 235 / Issue 235 - September 2007 - DPCS0907DVD.ISO / Extras / NetObjects Fusion / NOF10.exe / data1.cab / FSI / lib / nof / dataobjects / tables / Util.js < prev   
Encoding:
Text File  |  2007-04-11  |  2.6 KB  |  73 lines

  1. function NOF_DataObjects_TablesUtil(){
  2.   this.__proto__ = NOF_DataObjects_TablesUtil.prototype;
  3. }
  4.   
  5. function NOF_DataObjects_TablesUtil_ProtoBuilder(){
  6.   var method = NOF_DataObjects_TablesUtil.prototype;
  7.   
  8.   method.getSelection = function getSelection(name, table){
  9.     var fApp = NOF.App.getFSIApp();
  10.     var selections = fApp.GetAllSelectionsByName( name );  
  11.     var count = selections.Count();    
  12.     NOF.Contract.Assert (count <=1, "Corrupted selection space! Multiple entries found for: " + name);
  13.     
  14.     if (count == 0){
  15.       selection = fApp.NewSelection( name, NOF_TableTypes.NODELESS | NOF_TableTypes.ECOMM_CATALOG );
  16.       selection.SetTable( table );
  17.     }else{
  18.       selection = selections.GetNext();
  19.     }
  20.     
  21.     return selection; 
  22.   }
  23.   
  24.   //TODO: remember to take care of last element not having the AND/OR field set when adding new filters per Catalin
  25.   method.SetFilter = function SetFilter( selection, fChain ){
  26.     selection.RemoveFilter();
  27.     var filterIter = selection.GetFilter();
  28.   
  29.     var filters = fChain.getFilters();
  30.     for (var i=0; i<filters.length; i++){
  31.      if ( filters[i].active ){
  32.         var fType = null;
  33.         if ( filters[i].fieldtype == NOF_FILTER_CONSTANTS.FT_INTEGER  || 
  34.           filters[i].fieldtype == NOF_FILTER_CONSTANTS.FT_BOOLEAN  )
  35.             fType = 1;
  36.         else if ( filters[i].fieldtype == NOF_FILTER_CONSTANTS.FT_STRING ||
  37.           filters[i].fieldtype == NOF_FILTER_CONSTANTS.FT_FLOAT  )
  38.            fType = 0;
  39.  
  40.         NOF.Contract.Assert(fType != null, "Invalid fieldtype: " + filters[i].fieldtype);        
  41.  
  42.         var filter = new ActiveXObject(NOF.ProgId.FSIFilter);
  43.         
  44.         //debugger;
  45.         if ( filters[i].fieldtype == NOF_FILTER_CONSTANTS.FT_BOOLEAN ){
  46.           if (filters[i].operator == NOF_FILTER_CONSTANTS.IS_TRUE)
  47.             filter.Value     = 1;
  48.           else
  49.             filter.Value     = 0;
  50.           
  51.           filter.Operator  = NOF_FILTER_CONSTANTS.IS_EQUAL;
  52.         }else{
  53.           filter.Operator  = filters[i].operator;
  54.           filter.Value     = filters[i].value;          
  55.         }
  56.         
  57.         filter.FieldName = filters[i].fieldname;
  58.         filter.FieldType = fType;
  59.         filter.AndOr     = filters[i].chainrule;    
  60.         filterIter.AddFilter( filter);
  61.       }
  62.     }
  63.     
  64.     selection.SetFilter( filterIter );
  65.   }
  66.   
  67.   method.SetSort = function SetSort( selection, sort ){
  68.     selection.SetSort();
  69.   }
  70. }
  71.   
  72. NOF_DataObjects_TablesUtil_ProtoBuilder();
  73. NOF_DataObjects.prototype.TablesUtil = new NOF_DataObjects_TablesUtil();